home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 41.zip / BS1 part 41 / Abacus diskdrives IO.adf / CH4 / Program5.bas < prev    next >
BASIC Source File  |  1978-06-28  |  2KB  |  86 lines

  1. 'Programm 5:
  2. DECLARE FUNCTION Examine& LIBRARY
  3. DECLARE FUNCTION ExNext& LIBRARY
  4. DECLARE FUNCTION Lock& LIBRARY
  5. DECLARE FUNCTION AllocMem& LIBRARY
  6. DECLARE FUNCTION IoErr& LIBRARY
  7.  
  8. LIBRARY "ram:exec.library"
  9. LIBRARY "ram:dos.library"
  10.  
  11. more2:
  12. INPUT "Directory ";Dir$
  13.  
  14. Hello%=-2
  15. Dir$=Dir$+CHR$(0)
  16. bytes&=252
  17. lock2&=Lock&(SADD(Dir$),Hello%)
  18. opt&=2^1+2^16
  19. info&=AllocMem&(bytes&,opt&)
  20. suc&=Examine&(lock2&,info&)
  21.  
  22. more:
  23. DirName&=info&+8
  24. FOR search=0 TO 29
  25. check=PEEK(DirName&+search)
  26. IF check<>0 THEN
  27.   check$=check$+CHR$(check)
  28. ELSE
  29.   search=29
  30. END IF
  31. NEXT search
  32.  
  33. DirName$=check$:check$=""
  34. prot&=PEEKL(info&+116)
  35.  
  36. IF prot&<>0 THEN
  37.   IF (prot& AND 2^3)<>0 THEN prot$=prot$+"read "
  38.   IF (prot& AND 2^2)<>0 THEN prot$=prot$+"write "
  39.   IF (prot& AND 2^1)<>0 THEN prot$=prot$+"Execute "
  40.   IF (prot& AND 2^0)<>0 THEN prot$=prot$+"erase "
  41.   DirProt$=LEFT$(prot$,LEN(prot$)-1)
  42.   prot$="d"
  43. END IF
  44.  
  45. type&=PEEKL(info&+120)
  46. IF type&<0 THEN
  47.   DirType$="File"
  48. ELSEIF counter%=0 THEN
  49.   DirType$="Directory"
  50. ELSE 
  51.   DirType$="Directory"
  52. END IF
  53.  
  54. DirSize&=PEEKL(info&+124)
  55. DirBlks&=PEEKL(info&+128)
  56.  
  57. FOR search=0 TO 79
  58. check=PEEK(info&+144+search)
  59. IF check<>0 THEN
  60.   check$=check$+CHR$(check)
  61. ELSE
  62.   search=79
  63. END IF
  64. NEXT search
  65.  
  66. DirComm$=check$:check$=""
  67. suc&=ExNext&(lock2&,info&)
  68. IF suc&=0 THEN CLS:GOTO more2
  69.  
  70. CLS
  71. LOCATE 5,3
  72.  
  73. COLOR 3:PRINT DirName$;:COLOR 1
  74. PRINT " is a ";
  75. COLOR 3:PRINT DirType$;:COLOR 1:PRINT "."
  76. IF DirType$="Directory" THEN pause
  77. PRINT " Following Protect-Options are used:"
  78. PRINT:COLOR 2:PRINT "  ";DirProt$:COLOR 1 
  79. pause:
  80. PRINT :PRINT "  Continue => Key           New Dir => q"
  81. pause2:
  82. a$=INKEY$:IF a$="" THEN pause2
  83. IF a$="q" THEN CLS:GOTO more2 
  84. GOTO more
  85.  
  86.